package com.terrier.ui.events
{
    import flash.events.Event;

    /**
     * 特效事件
     *
     * @author Jarvis.weng
     */
    public class WxEffectEvent extends Event
    {
        /**
         * 定义 effect_start 事件对象的type属性值 - 特效开始
         * @default
         */
        public static const EFFECT_START:String = "effect_start";

        /**
         * 定义 effect_stop 事件对象的type属性值 - 特效停止
         * @default
         */
        public static const EFFECT_STOP:String = "effect_stop";

        /**
         * 定义 effect_pause 事件对象的type属性值 - 特效暂停
         * @default
         */
        public static const EFFECT_PAUSE:String = "effect_pause";

        /**
         * 定义 effect_pause 事件对象的type属性值 - 特效暂停
         * @default
         */
        public static const EFFECT_RESUME:String = "effect_resume";
		
		/**
		 * 定义 effect_pause 事件对象的type属性值 - 特效进行
		 * @default
		 */
		public static const EFFECT_STEP:String = "effect_step";

		private var _eventParams:Object;
		
        /**
         * 构造函数
         * @param type 事件类型
         * @param bubbles 事件是否为冒泡事件
         * @param cancelable 事件是否可以取消
         */
        public function WxEffectEvent(type:String, additionalParams:Object = null, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super(type, bubbles, cancelable);
			this._eventParams = additionalParams;
        }

        /**
         * @private
         */
        override public function clone():Event
        {
            var event:WxEffectEvent = new WxEffectEvent(this.type, this.bubbles, this.cancelable);
			event._eventParams = this._eventParams;
            return event;
        }
		
		public function set eventParams(value:Object):void
		{
			this._eventParams = value;
		}

		public function get eventParams():Object
		{
			return _eventParams;
		}
    }
}